@content-bg: white;
@navbar-bg: white;
@nav-sidebar-bg: #f6f6f6;
@color: #333;
@table-border-radius: 8px;
@primary-color: #175199;
@light-primary-color: lighten(@primary-color, 20%);
@theme-gray: rgb(226, 228, 230);
@light-theme-gray: lighten(@theme-gray, 8%);
@dark-theme-gray: #777;
@nav-height: 50px;
@border: 1px solid @light-theme-gray;
@table-padding: 10px 20px;
@checkbox-width: 18px;
@nav-panel-width: 300px;
@nav-menu-switch-width: 30px;
@input-height: 34px;
@recommendation-candidate-height: 500px;
@facet-group-width: 200px;
@rating-color: #E6E40E;
@table-row-hover-color: #EE9A00;

/*user agent*/
body {
    color: #333;
    height: 100vh;
    overflow: hidden;
    background-color: @content-bg;
    position: relative;
    font-size: 14px;
}
a {
    &:hover {
        cursor: pointer;
    }
}
a {
    &:focus {
        outline-width: 0;
    }
}
ul {
    list-style: none;
}
li {
    background-color: transparent;
}
/*
li:hover {
    background-color: #63B8FF;
}*/
h1 {
    font-size: 24px;
}
h2 {
    font-size: 22px;
}
h3 {
    font-size: 20px;
}
li, input, tr, button {
    transition: background-color 0.2s;
}
input {
    &.ng-invalid.ng-dirty {
        border-color: red;
    }
}
.glyphicon {
    color: #777;
}
/*bootstrap*/
.navbar {
    height: @nav-height;
    margin: 0;
    border: 0;
    border-radius: 0;
    background-color: @navbar-bg;
    .nav {
        >li {
            >a {
                height: 50px;
                background-color: transparent!important;
                border: 1px solid transparent;
                line-height: 18px;
                color: #777;
            }
            &.active {
                background-color: @primary-color;
                a {
                    color: white;
                }
                &:hover {
                    background-color: @primary-color;
                    >a{
                        background-color: @primary-color;
                        color: white;
                    }
                }
            }
            &:hover {
                a {
                    color: @primary-color;
                    text-decoration: underline;
                }
            }
        }
        >li>a:focus {
            border: 1px solid #66afe9;
        }
    }
    .notification-bell {
        color: #777;
    }
}
.navbar-brand{
    color: #175199;
}
.table {
    border-collapse: separate;
    .glyphicon-thumbs-up {
        font-size: 4px;
    }
}
.table-pagination {
    text-align: center;
}
.row {
    padding: 10px;
}
.col {
    padding: 8px 20px;
    display: flex;
    justify-content: space-between;
}
.col-adj {
    padding: 8px 20px;
    display: flex;
}
.control-label {
    min-width: 100px;
    font-size: 16px;
    padding: 6px 0;
}
.btn {
    background-image: none;
}
/*global*/
.alert-container {
    position: absolute;
    z-index: 9999;
    top: 0px;
    left: 20px;
    width: 100%;
    >.alert {
        width: 500px;
        margin: 10px auto 0;
        text-align: center;
    }
}
.container-fluid {
    border-bottom: 1px solid #ddd;
}
.button-line {
    float: right;
    button {
        min-width: 100px!important;
    }
}
main.main {
    height: calc(~'100vh -'@nav-height);
    position: absolute;
    top: @nav-height + 1px;
    left: 0;
    right: 0;
    overflow-x: hidden;
    .nav-panel {
        width: @nav-panel-width;
        min-width: @nav-panel-width;
        height: 100%;
        overflow-y: auto;
        background-color: transparent;
        transition: width 0.2s;
        border-right: 1px solid #ddd;
        &.nav-panel-collapse {
            transition: width 0.2s;
            width: @nav-menu-switch-width;
            min-width: @nav-menu-switch-width;
            overflow: hidden;
            background-color: @nav-sidebar-bg;
            .nav-menu, .nav-info-container {
                visibility: hidden;
            }
        }
        .nav-menu-switch-container {
            text-align: right;
            padding: 6px 0;
            >.nav-menu-switch {
                width: @nav-menu-switch-width;
                height: @nav-menu-switch-width;
                text-align: center;
                &:hover {
                    cursor: pointer;
                }
            }
        }
        .nav-menu {
            padding: 0;
            .nav-menu-item {
                min-height: 40px;
                line-height: 40px;
                background-color: transparent;
                position: relative;
                a {
                    color: @primary-color;
                }
                &:focus {
                    >a {
                        text-decoration: underline;
                    }
                }
                >.nav-icon {
                    position: absolute;
                    font-size: 14px;
                    right: 5px;
                    padding: 0 10px;
                    color: white;
                }
                >.nav-child-link {
                    padding-left: 40px;
                }
                >.nav-link {
                    padding-left: 20px;
                }
                &.active {
                    background-color: @primary-color;
                    >a {
                        color: white;
                    }
                    &:hover {
                        background-color: @primary-color;
                        >a {
                            color: white;
                        }
                    }
                }
                &:hover {
                    cursor: pointer;
                    > a {
                        text-decoration: underline;
                    }
                }
            }
        }
        @media (max-width: 768px){
            position: fixed;
            left: 0;
            top: @nav-height;
            z-index: 9999;
        }
    }
}
.table-container {
    min-height: 500px;
    margin-top: 20px;
    >.table-control {
        display: flex;
        justify-content: space-between;
        padding: @table-padding;
        >.btn-group {
            >.btn {
                background-image: none;
            }
        }
    }
    thead {
        th {
            font-weight: 400;
            background-color: @theme-gray;
            border-bottom: 0;
        }
    }
    tbody {
        min-height: 500px;
    }
    >.table-body {
        padding: 0 20px;
        tbody {
            .no-item-row {
                td{
                    padding: 150px;
                }
                height: 300px;
                text-align: center;
            }
            .glyphicon {
                font-size: 14px;
                margin-left: 5px;
            }
            tr:nth-child(2n + 1) {
                background-color: @light-theme-gray;
            }
            tr:nth-child(2n + 2) {
                background-color: @theme-gray;
            }
            a {
                color: @primary-color;
            }
            >tr{
                &:hover {
                    cursor: pointer;
                    a {
                        text-decoration: underline;
                    }
                }
            }
        }
    }
}
.btn-row {
    padding-right: 30px;
    text-align: right;
}
.radio-wrapper {
    width: 18px;
    height: 18px;
    background-color: white;
    border-radius: 50%;
    border: 1.3px solid #cccccc;
    >.radio-choosen {
        &.choosen {
            width: 4px;
            height: 4px;
            border: 1px solid #333;
            border-radius: 50%;
            background-color: #333;
            margin: 6px auto;
        }
    }
}
/*modal*/
.modal-header,.modal-body, .modal-footer {
    color: #333;
}
.modal-window {
    width: 800px;
    margin: 20px  auto;
}
.modal-cross, .modal-plus {
    &:before {
        display: block;
    }
    &:hover {
        cursor: pointer;
        color: @dark-theme-gray;
    }
    float: right;
}
.modal-cross {
    &:before {
        content: '\2716';
    }
}
.modal-plus {
    &:before {
        content: '\271A';
    }
}
.date-range-container {
    display: flex;
    justify-content: space-around;
    .date-picker-wrapper {
        display: flex;
    }
    .input-group-btn, span {
        padding: 0;
    }
    .date-picker-input {
        width: 200px;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
}
/*directives*/
.label-plain-text-container, .label-address, .label-input-text-container, .label-plain-text-container, .label-link-wrapper, .label-input-number-wrapper, .label-range-container {
    span {
        color: #555;
    }
    label {
        font-weight: 600;
    }
}
.editable-list {
    label {
        font-weight: 600;
    }
}
.checkbox-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    >.checkbox-view {
        position: relative;
        width: @checkbox-width;
        height: @checkbox-width;
        background-color: white;
        color: #333;
        border: 1.3px solid lighten(#333, 60%);
        &:hover {
            cursor: pointer;
        }
        &.selected:before {
            content: "\2713";
            position: absolute;
            top: 0;
            left: 3px;
            font-size: 13px;
            font-weight: 800;
        }
    }
}
.image-gallery {
    max-width: 50%;
    .image-gallery-item-wrapper {
        position: relative;
        .image-gallery-hidder {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -1;
            font-size: 200px;
            opacity: 0.3;
        }
        &:hover {
            .image-gallery-hidder {
                z-index: 1;
                background-color: @light-theme-gray;
                opacity: 0.3;
                cursor: pointer;
            }
        }
        img {
            z-index: 0;
            max-width: 100%;
            max-height: 100%;
        }
    }
}
@image-container-wrapper-width: 250px;
@image-container-wrapper-padding: 5px;
.image-list {
    display: flex;
    flex-wrap: wrap;
    >.image-container-wrapper {
        width: @image-container-wrapper-width;
        height: @image-container-wrapper-width;
        padding: @image-container-wrapper-padding;
        display: inline-block;
        >.image-container {
            width: @image-container-wrapper-width - 2* @image-container-wrapper-padding;
            height: @image-container-wrapper-width - 2* @image-container-wrapper-padding;
            padding: 5px;
            border: 1px solid #ddd;
            background-color: @light-theme-gray;
            >.image-container-content {
                width: 100%;
                height: 100%;
                position: relative;
                display: flex;
                align-items: center;
                background-color: white;
                text-align: center;
                &:hover {
                    cursor: pointer;
                }
                .image-container-control {
                    width: 100%;
                    height: 100%;
                    background-color: transparent;
                    text-align: right;
                    position: absolute;
                    top: 0;
                    right: 0;
                    /*
                    >.image-zoom {
                        display: inline-block;
                    }*/
                    >.image-remove {
                        width: 100%;
                        height: 100%;      
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        background-color: @light-theme-gray;
                        opacity: 0;
                        font-size: 80px;
                        transition: opacity 0.2s;
                        &:hover {
                            opacity: 0.9;
                            transition: opacity 0.2s;
                        }
                    }
                    .glyphicon {
                        color: #333;
                    }
                }
                img {
                    max-width: 100%;
                    max-height: 100%;
                    margin: 0 auto;
                }
                span {
                    max-width: 100%;
                    max-height: 100%;
                }
                >.image-plus-wrapper {
                    width: 100%;
                    .glyphicon-plus {
                        font-size: 80px;
                        color: #333;
                    }
                    &:hover {
                        cursor: pointer;
                    }
                }
            }
        }
    }
}
.range-container {
    width: 100%;
    display: flex;
    justify-content: space-between;
    .range {
        padding-left: 15px;
        padding-right: 15px;
    }
}
.address-container {
    width: 100%;
    input {
        margin-right: 20px;
        &:last-child {
            margin-right: 0;
        }
    }
    .city-and-district-wrapper {
        display: flex;
        margin-bottom: 20px;
    }
}
.number-range-container {
    width: 100%;
    display: flex;
    justify-content: space-between;
    input {
        margin-right: 20px;
        &:last-child {
            margin-right: 0;
        }
    }
}
.editable-list-container {
    display: flex;
    >ul {
        padding: 0;
        margin: 0;
        >.editable-list-item {
            margin-right: 10px;        
            margin-bottom: 5px;
        }
    }
}
#editableList {
    margin-top: 6px;
    width: 200px;
}
/*hotel*/
.content-container {
    width: 100%;
    height: 100%;
    display: flex;
    >.content-panel {
        flex: 1 1 auto;
        height: 100%;
        overflow-x: hidden;
        @media (max-width: 768px) {
            margin-left: @nav-menu-switch-width;
        }
    }
}

/*hotel_list*/
.create-hotel-container, .create-banquet-container, .hotel-info-container, .banquet-container, .create-feast-container, .feast-container, .table-container {
    max-width: 1000px;
    margin: 20px auto;
    padding: 20px 10px;
}
/*hotel detail*/
.hotels-detail-container {
    display: flex;
    height: 100%;
}
.hotel-detail-menu {
    display: flex;
    padding-left: 0;
    >.hotel-detail-menu-item {
        min-width: 100px;
        padding: 10px 20px;
        font-size: 16px;
        font-weight: 300;
        position: relative;
        text-align: center;
        border-bottom: 1px solid @dark-theme-gray;
        margin-bottom: 2px;
        &:hover {
            color: @primary-color;
            border-bottom: 3px solid @dark-theme-gray;
            cursor: pointer; 
            margin-bottom: 0;
        }
        &.active {
            &:before {
                content: "";
                display: block;
                width: 100%;
                height: 3px;
                background-color: @primary-color;
                position: absolute;
                bottom: -3px;
                left: 0;
            }
        }
    }
}
.hotel-basic-info-container {
    padding: 20px;
}
.banquet-hall-container {
    >.banquet-hall-detail {
        padding: 20px;
    }
    >.banquet-hall-detail.no-banquet-detail {
        text-align: center;
        margin: 20px;
    }
    >.banquet-hall-list {
        padding: 20px;
        flex: 0 0 250px;
        ul.banquet-hall-list-container {
            padding-left: 0;
            display: flex;
        }
        .banquet-hall-item-wrapper {
            width: 200px;
            padding: 6px;
            margin-bottom: 10px;
            margin-right: 10px;
            border: 1px solid @theme-gray;
            border-radius: 4px;
            background-color: @light-theme-gray;
            text-align: center;
            position: relative;
            &:hover {
                background-color: @theme-gray;
                color: @primary-color;
                cursor: pointer;
            }
            .remove-banquet-wrapper, .add-banquet-wrapper {
                position: absolute;
                width: 20px;
                top: 2px;
                right: 10px;
                font-size: 20px;
                font-weight: 400;
            }
            &.active {
                background-color: @primary-color;
                color: white;
                &:hover {
                    background-color: @primary-color;
                    color: white;
                }
            }
        }
    }
    >.banquet-hall-detail {
        flex: 1 1 auto;
    }
}
/*hotel-comment*/
.hotel-comment-container {
    padding: 20px;
    height: 100%;
    .no-comment {
        margin:100px;
        min-height: 100px;
        text-align: center;
        font-size: 24px;
        font-weight: 400;
    }
    .hotel-comments {
        padding: 10px;
        .hotel-comment-wrapper {
            margin: 5px;
            border-bottom: 1px solid #ccc;
            .comment-header {
                display: flex;
                background-color:@primary-color;
                color: white;
                border-top-left-radius: 4px;
                border-top-right-radius: 4px;
                padding: 5px;
                font-size: 18px;
                color: white;
                .comment-author {
                    padding-left: 10px;
                    min-width: 100px;
                }
                .comment-banquet {
                    padding-left: 10px;
                    flex: 1 1 auto;
                    min-width: 100px;
                }
                .comment-rating {
                    padding-right: 10px;
                    color: @rating-color;
                }
            }
            .comment-body {
                min-height: 100px;
                padding: 10px;
            }
            .comment-footer {
                text-align: right;
                .comment-date {
                    padding-right: 10px;
                }
            }
        }
    }
}


/*signin*/
.signin-board {
    width: 300px;
    padding: 100px 20px 80px;
    margin: 20vh auto 0 auto;
    .signin-info-container {
        >input {
            border-radius: 0;
            height: 40px;
        }
        >input:nth-child(1 + n) {
            border-top: 0;
        }
        >input:first-child {
            border-top-left-radius: 4px;
            border-top-right-radius: 4px;
        }
        >input:last-child {
            border-bottom-left-radius: 4px;
            border-bottom-right-radius: 4px;
        }
    }
    >.btn-row {
        text-align: center;
        padding-right: 10px;
        >.btn {
            width: 100%;
        }
    }
}
/*ads*/
.full-content-container {
    max-width: 1000px;
    margin: 10px auto;
}
/*recommendation*/
.glyphicon.glyphicon-thumbs-up {
    margin-left: 5px;
    color: @light-primary-color;
    &:hover {
        cursor: pointer;
    }
    &.inactive {
        color: @dark-theme-gray;
    }
}
.recommendation-image {
    max-width: 500px;
    max-height: 500px;
}
.recommendation-hotel-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px;
    height: 100%;
    display: flex;
    justify-content: space-between;
    .dndPlaceholder {
        height: @input-height;
        background-color: @primary-color;
    }
    .dndDraggingSource {
        //visibility: hidden;
        display: none;
    }
    .recommendation-item {
        padding: 6px 20px;
        height: @input-height;
        line-height: 22px;
        &:nth-child(odd) {
            background-color: @light-theme-gray;
        }
        &:nth-child(even) {
            background-color: @theme-gray;
        }
    }
    >.recommendation-candidate-container {
        width: 400px;
        min-width: 400px;
        max-width: 400px;
        height: @recommendation-candidate-height;
        >.recommendation-filter {
            width: 100%;
            height: @input-height;
            padding: 6px;
            &:focus {
                outline-color: @primary-color;
            }
        }
        >.recommendation-candidate-wrapper {
            padding: 0;
            height: @recommendation-candidate-height - @input-height - 24px;
            border: 1px solid @dark-theme-gray;
            border-top: 0;
            overflow-y: scroll; 
        }
    }
    >.recommendation-list-container {
        flex: 1 0 400px;
        margin-left: 20px;
        height: @recommendation-candidate-height;
        >.recommendation-wrapper {
            padding: 0;
            height: @recommendation-candidate-height - 24px;
            border: 1px solid @dark-theme-gray;
            overflow-y: scroll;
        }
    }
}
/*order*/
.canceled {
    border-top-color: red;
    border-right-color: red;
    background-color: red;
}
.consulting {
    border-top-color: orange;
    border-right-color: orange;
    background-color: orange;
}
.reserved {
    border-top-color: yellow;
    border-right-color: yellow;
    background-color: yellow;
}
.feasted {
    border-top-color: green;
    border-right-color: green;
    background-color: green;
}
.cashback {
    border-top-color: cyan;
    border-right-color: cyan;
    background-color: cyan;
}
.to-be-reviewed {
    border-top-color: blue;
    border-right-color: blue;
    background-color: blue;
}
.done {
    border-top-color: purple;
    border-right-color: purple;
    background-color: purple;
}
.orders-container {
    height: 100%;
    background-color: transparent;
    display: flex;
    >.facet-group-container {
        .facet-group-wrapper {
            .little-box {
                position: absolute;
                top: 8px;
                right: 10px;
                width: 10px;
                height: 10px;
                float: right;
                border-radius: 50%;
            }
            .facet-group-dropdown-menu {
                padding: 10px 0 10px 0;
                border-bottom-left-radius: 4px;
                border-bottom-right-radius: 4px;
                margin-top: 0;
                margin-bottom: 0;
                .filter-name {
                    color: #333;
                    padding: 0 0 0 6px;
                }
            }
            .facet-filter-wrapper {
                position: relative;
                display: flex;
                padding: 5px 12px;
                color: #333;
                &:hover {
                    cursor: pointer;
                }
            }
            .facet-group-name-wrapper {
                background-color: @primary-color;
                color: white;
                padding: 10px;
                border-bottom: 1px solid rgba(0, 0, 0, 0.15);
                cursor: pointer;
                .glyphicon {
                    float: right;
                    padding: 6px;
                    font-size: 8px;
                }
            }
        }
        .glyphicon-menu-down, .glyphicon-menu-left {
            color: white;
        }
    }
    >.search-result-container {
        height: 100%;
        background-color: @content-bg;
        padding: 10px 50px;
        overflow-y: scroll;
        flex: 1 1 auto;
        .order-search-select {
            padding: 3px 6px;
            &:hover{
                cursor: pointer;
                background-color: @dark-theme-gray;
            }
        }
        .search-result-wrapper {
            padding-right: 40px;
            .search-result {
                position: relative;
                border: 1px solid #ddd;
                background-color: @light-theme-gray;
                h2, label {
                    color: #555;
                }
                a {
                    color: @primary-color;
                }
                margin-bottom: 10px;
                .order-state {
                    background-color: @light-theme-gray;
                    &:after {
                        content: "";
                        position: absolute;
                        top: 0;
                        right: 0;
                        border-top: 44px solid;
                        border-left: 44px solid transparent;
                        display: inline-block;
                    }
                    &.canceled {
                        &:after {
                            border-top-color: red;
                        }
                    }
                    &.consulting {
                        &:after {
                            border-top-color: orange;
                        }
                    }
                    &.reserved {
                        &:after {
                            border-top-color: yellow;
                        }
                    }
                    &.feasted {
                        &:after {
                            border-top-color: green;
                        }
                    }
                    &.cashback {
                        &:after {
                            border-top-color: cyan;
                        }
                    }
                    &.to-be-reviewed {
                        &:after {
                            border-top-color: blue;
                        }
                    }
                    &.done {
                        &:after {
                            border-top-color: purple;
                        }
                    }
                }
                .order-result-row {
                    padding: 0;
                    margin: 0;
                    position: relative;
                    .order-number {
                        display: inline-block;
                        margin: 10px 0;
                    }
                    .order-link {
                        text-decoration: underline;
                        font-size: 18px;
                        margin-left: 10px;
                    }
                }
                .col-md-6 {
                    background-color: @light-theme-gray;
                }
            }
        }
        .search-wrapper {
            width: 600px;
            margin: 10px auto;
            display: flex;
            .search-input {
                width: 80%;
                height: 40px;
                line-height: 40px;
                padding: 6px;
                border: 1px solid rgba(0, 0, 0, 0.15);
                &:focus {
                    outline-color: rgba(0 ,0 , 0, 0);
                }
            }
            .search-button {
                width: 40px;
                min-width: 40px;
                max-width: 40px;
                padding: 0;
                border-top-left-radius: 0;
                border-bottom-left-radius: 0;
                color: white;
                .glyphicon {
                    color: white;
                }
            }
            .btn-search-select {
                width: 100px;
                height: 40px;
                padding: 6px;
                border-top-right-radius: 0;
                border-bottom-right-radius: 0;
                .caret {
                    margin-left: 6px;
                }
            }
            .dropdown-menu {
                color: #333;
                li {
                    &:hover {
                        color: white;
                    }
                }
            }
        }
    }
}
.order-container {
    height: 100%;
    background-color: @content-bg;
    overflow-y: scroll;
    .order-wrapper {
        color: #333;
        max-width: 1000px;
        margin: 20px auto;
        background-color: white;
        border: 1px solid rgba(0,0,0,0.15);
        .order-title {
            padding: 20px 0 0 20px;
        }
        .order-time {
            .order-time-wrapper {
                text-align: right;
                padding-right: 20px;
            }
        }
        .order-line {
            padding-left: 20px;
        }
        .candidate-container, .feastdata-container, .contract-line, .payment-line, .cashback-line {
            padding: 0 20px 20px;
            ul {
                padding: 0;
            }
        }
        .save-button-line {
            text-align: right;
        }
    }
}
/*user*/
.user-container {
    max-width: 1000px;
    margin: 20px auto;
    .row {
        display: flex;
    }
}

/*cashback*/
.cashback-container {
    max-width: 1000px;
    margin: 20px auto;
}

/*notification*/
.notification-nav {
    .notification-item {
        max-width: 300px;
        padding: 6px;
        >.from {
            text-align: right;
        }
    }
}

/*discount info*/
.discount-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px 10px;
}

.no-discount-wrapper {
    text-align: center;
    margin-top: 100px;
}

.discount-container .pagination-wrapper {
    text-align: center;
}

.discount-container .import-wrapper {
    margin-bottom: 10px;
    text-align: right;
}

.notification-container {
    max-width: 800px;
    margin: 20px auto;
    border-radius: 10px;
    text-align: center;
    .notification-list-wrapper {
        padding: 20px;
        padding-left: 20px;
        list-style: none;
        .notification-item-wrapper {
            background-color: white;
            color: @color;
            margin-bottom: 20px;
            padding: 20px;
            border-radius: 5px;
            .notification-message {
                margin-bottom: 20px;
                font-size: 16px;
            }
            .notification-info {
                display: flex;
                justify-content: space-between;
                padding-left: 20px;
                padding-right: 20px;
            }
            .notification-created-by, .notification-created-time {
                span {
                    color: @dark-theme-gray;
                }
            }
        }
    }
}